package com.jinniulive.platform;

import android.content.Context;
import android.content.SharedPreferences;
import android.util.AttributeSet;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.jcodecraeer.xrecyclerview.XRecyclerView;

/**
 * Created by Administrater on 2016/12/9.
 */

public class RefreshableView extends LinearLayout{
    //下拉状态
    public static final int STATUS_PULL_TO_REFRESH=0;
    //释放立即刷新状态
    public static final int STATUS_RELEASE_TO_REFRESH=1;
    //正在刷新状态
    public static final int status_refresh=2;
    //刷新完成或未刷新状态
    public static final int STATUS_REFRESH_FINISHED=3;
    //下拉头部回滚的速度
    public static final int scroll_speed=-20;
    //一分钟的毫秒值
    public static final long ONE_MINUTE=60*1000;
    //一小时的毫秒值，用于判断上次的更新时间
    public static final long ONE_HOUR=60*ONE_MINUTE;
    //一天的毫秒值，用于判断上次的更新时间
    public static final long ONE_DAY=24*ONE_HOUR;
    //一个月的毫秒值
    public static final long ONE_MONTH=30* ONE_DAY;
    //一年的毫秒值
    public static final long ONE_YEAR=12*ONE_MONTH;
    private static final String UPDATE_AT="update_at";
    //用于存储上次更新时间
    private SharedPreferences preferences;
    //下拉头
    private View header;
    //需要下拉刷新的recyclerview
    private XRecyclerView xRecyclerView;
//    private ProgressBar progressBar;
    //指示下拉和释放的箭头
//    private ImageView arrow;
    //左右晃动的图片
    private ImageView ivAnimation;
    //下拉头的布局参数
    private MarginLayoutParams headerLayoutParams;

    private long lastUpdateTime;
    //为了防止不同界面的下拉刷新在上次更新时间上互相有冲突，使用id来做区分
    private int mid=-1;
    //下拉头的高度
    private int hideHeaderHeight;
    //当前处理什么状态
    private int currentStatus=STATUS_REFRESH_FINISHED;
    //上一次的状态，避免进行重复操作
    private int lastStatus=currentStatus;
    //手指按下时的屏幕纵坐标
    private float yDown;
    //在被判定为滚动之前用户手指可以移动的最大值
    private int touchSlop;
    //是否加载过一次layout，这里的onlayout中的初始化只需加载一次
    private boolean loadOnce;
    //当前是否可以下拉，只有ListView滚动到头的时候才可以下拉
    private boolean ableToPull;



    public RefreshableView(Context context) {
        super(context);
    }

    public RefreshableView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public RefreshableView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

}
